package cn.calm.user.action;

import java.util.List;

import org.apache.struts2.osgi.interceptor.ServiceAware;

import cn.calm.commons.action.CurdAction;
import cn.calm.commons.entity.PageMode;
import cn.calm.entity.Menu;
import cn.calm.user.service.IMenuService;

@SuppressWarnings("rawtypes")
public class MenuAction<T extends Menu,S extends IMenuService<T>> extends
CurdAction<T,S> implements ServiceAware<IMenuService> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// private static final Logger logger = LoggerFactory
	// .getLogger(MenuAction.class);

	// private IMenuService<Menu> menuService;

	// @SuppressWarnings("unchecked")
	// public String loadMenuApp() {
	// logger.debug("loadMenuApp start");
	// // if (t.getId() == null) {
	// User user = (User) getSessionValue(UserAction.SESSION_KEY_USER);
	// t = (T) menuService.loadByUserAndParent(user, t);
	// // } else {
	//
	// // }
	// logger.debug("loadMenuApp end");
	// return "loadMenuApp";
	// }

	// @Override
	// public String listPage() {
	// try {
	// logger.debug("listPage start");
	// // User user = (User) getSessionValue(UserAction.SESSION_KEY_USER);
	// // t.setUser(user);
	// return super.listPage();
	// } finally {
	// logger.debug("listPage end");
	// }
	// }
	@Override
	public String listAll() {

		return super.listAll();
	}

	@Override
	public String getModeName() {
		return "menu";
	}

	@Override
	public T getT() {
		return super.getT();
	}

	@Override
	public PageMode getPageMode() {
		return super.getPageMode();
	}

	@SuppressWarnings("unchecked")
	@Override
	public Class<T> getEntityClass() {
		return (Class<T>) Menu.class;
	}

	@SuppressWarnings("unchecked")
	@Override
	public void setServices(List<IMenuService> arg0) {
		if (service == null) {
			if (arg0 != null && arg0.size() > 0) {
				service = (S) arg0.get(0);
			}
		}
	}

}
